package poo.agendina;

public class Nominativo implements Comparable<Nominativo> {

	private String cognome, nome, prefisso, telefono;

	public Nominativo(String cognome, String nome, String prefisso,
			String telefono) {
		this.cognome = cognome;
		this.nome = nome;
		this.prefisso = prefisso;
		this.telefono = telefono;
	}// Nominativo
		// metodi accessori

	public String getCognome() {
		return cognome;
	}// getCognome

	public String getNome() {
		return nome;
	}// getNome

	public String getPrefisso() {
		return prefisso;
	}// getPrefisso

	public String getTelefono() {
		return telefono;
	}// getTelefono

	@Override
	public boolean equals(Object x) {
		if (!(x instanceof Nominativo))
			return false;
		if (x == this)
			return true;
		Nominativo n = (Nominativo) x;
		return this.cognome.equals(n.cognome) && this.nome.equals(n.nome);
	}// equals

	public int compareTo(Nominativo n) {
		if (this.cognome.compareTo(n.cognome) < 0
				|| this.cognome.equals(n.cognome)
				&& this.nome.compareTo(n.nome) < 0)
			return -1;
		if (this.equals(n))
			return 0;
		return +1;
	}// compareTo

	public String toString() {
		return cognome + " " + nome + " " + prefisso + " " + telefono;
	}// toString

	public int hashCode() {
		int PRIMO = 43;
		int h = cognome.hashCode();
		h = h * PRIMO + nome.hashCode();
		return h;
	}// hashCode

}
